package com.fashop.dao.impl;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.stereotype.Service;

import com.fashop.bean.mensaje.MensajeIn;
import com.fashop.dao.MensajeDao;
import com.fashop.jpa.Mensaje;

@Service("mensajeDaoImpl")
public class MensajeDaoImpl implements MensajeDao{
	
	@Resource(name = "sessionFactory")
    private SessionFactory factoria;
	@SuppressWarnings("unchecked")
	public List<Mensaje> MsjeBeaconSexoEdad(Long id, String sexo, int edad) {
		Session sesion 			= null;
		List<Mensaje> Mensajes	= null;
		try{
			sesion 	  = factoria.openSession();
			Mensajes = sesion.createQuery("from Mensaje where beacon_idbeacon=? "
										  + "	and sexo=? and edad=? and (fechafin is null or fechafin >= sysdate())")
						.setLong(0,id)
						.setString(1, sexo)
						.setInteger(2, edad)
						.list();
			sesion.close();
		}catch (Exception e) {
			Mensajes = null;
			sesion = null;
		}
		
		return Mensajes;
	}

	public Mensaje crear() {
		
		return null;
	}

	public Integer actualizar(MensajeIn mjeIn) {
		return null;
	}

	public Mensaje eliminar() {
		// TODO Auto-generated method stub
		return null;
	}

	public Integer actualizarVista(Long idMje) {
		Session sesion 		= null;
		Integer resultado	= null;
		Transaction tx		= null;
		Mensaje 	mensaje = null;
		try{
			sesion 	  = factoria.openSession();
			tx		  = sesion.beginTransaction();
			mensaje	  = (Mensaje)sesion.get(Mensaje.class, idMje);
			mensaje.setVistas(mensaje.getVistas()+1);
			sesion.update(mensaje);
			tx.commit();
			sesion.close();
		}
		catch(Exception e){
			sesion	= null;
			tx		= null;
		}
		return resultado;
	}

}
